Skip to content

fix: support provider-aware direct launches - #52

Merged
atyrode merged 1 commit into
mainfrom
fix/provider-aware-portable-launch
Aug 22, 2026
Merged

fix: support provider-aware direct launches#52
atyrode merged 1 commit into
mainfrom
fix/provider-aware-portable-launch

Conversation

@atyrode

@atyrode atyrode commented Aug 22, 2026

Copy link
Copy Markdown
Owner

Summary

  • launch trusted OMP directly when no central auth broker is configured, stripping stale broker environment
  • discover locally connected OMP providers and hide generator lanes that require unavailable providers
  • show an actionable accountless state while keeping managed OMP available for login

Verification

  • CGO_ENABLED=0 go test ./...
  • headless tmux capture: OpenRouter-only auth exposes only the ox lead and routes every role/advisor to ox
  • headless tmux capture: no providers hides generator controls and shows m open managed OMP to log in
  • both captures emitted truecolor SGR

@atyrode
atyrode force-pushed the fix/provider-aware-portable-launch branch from 6d73f23 to 9cb692f Compare August 22, 2026 16:13
@atyrode
atyrode merged commit 41e03e3 into main Aug 22, 2026
1 check passed
@atyrode
atyrode deleted the fix/provider-aware-portable-launch branch August 22, 2026 16:14
atyrode added a commit that referenced this pull request Aug 23, 2026
…l blend (#54)

Two regressions from the #47/#49/#52 window, both hit live:

- applyProviderAvailability deleted lanes from the dial, and required
  EVERY catalog pool connected before any blended lane survived. A
  catalog carrying the optional OpenRouter pool on a machine without an
  OpenRouter login therefore lost mixed and every led lane, leaving only
  gpt-only/claude-only - a missing optional credential nuked the blends
  between providers that WERE connected.

  Availability is now an annotation, not a trim: the dial always shows
  every catalog lane; unusable ones render struck with a '<providers> -
  not logged in' note and cycling steps past them (laneUsable). A lane
  needs its policy pools plus the Required pools (pure lanes only their
  own), so an optional login gates exactly its own lanes. The selection
  is moved off unusable lanes (clampSel); suggestions skip them
  (quotaLane); noProviders still guards the accountless case. Fallback
  rungs on unconnected pools are filtered from the preview and the
  launch overlay (filterRows), so relief tails degrade instead of
  naming models omp cannot route, and the relief note only names spill
  pools a login actually backs.

- laneSplit collapsed ox-lean into ('ox','led'), colliding with ox-led:
  the lean blend was unreachable from the split dial. laneSplit now
  carries the lane suffix verbatim, the blend dial offers led|lean|only
  (whatever the catalog serves per lead), and a lead switch re-clamps
  the blend to a served lane (composeLane) so gpt never lands on a
  nonexistent gpt-lean.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant